System.IObservable.Subscribe 方法

上一篇:IHasXmlNode 方法 下一篇:IObserver{T} 方法

方法描述

通知提供程序:某观察程序将要接收通知。

语法定义(C# System.IObservable.Subscribe 方法 的用法)

IDisposable Subscribe(
	IObserver observer
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
observer System-IObserver 要接收通知的对象。
返回值 System.IDisposable 对允许观察者在提供程序发送完通知前停止接收这些通知的接口的引用。

提示和注释

必须调用 Subscribe 方法为基本推送的通知注册观察器。 典型的 Subscribe 实现可执行下列任务:

它存储集合对象中的观察者的引用,比如 List 对象。

返回对 IDisposable 接口的引用。 这使观察器能够在提供程序完成发送并调用订户的 OnCompleted 方法之前取消订阅(即,停止接收通知)。

在任何给定的时间,IObservable 实现的特定实例负责处理所有订阅并通知所有订户。 除非特定的 IObservable 实现文档另行指示,否则观察器对 IObservable 实现不应做任何假设,例如多个观察器接收的通知顺序。

System.IObservable.Subscribe 方法例子

请参见完整示例的 IObservable 主题“示例”一节。

private List> observers;

public IDisposable Subscribe(IObserver observer) 
{
   if (! observers.Contains(observer)) 
      observers.Add(observer);
   return new Unsubscriber(observers, observer);
}

private class Unsubscriber : IDisposable
{
   private List>_observers;
   private IObserver _observer;

   public Unsubscriber(List> observers, IObserver observer)
   {
      this._observers = observers;
      this._observer = observer;
   }

   public void Dispose()
   {
      if (_observer != null && _observers.Contains(_observer))
         _observers.Remove(_observer);
   }
}

异常

异常 异常描述

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4 .NET Framework Client Profile 受以下版本支持:4

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。

上一篇:IHasXmlNode 方法 下一篇:IObserver{T} 方法